import Vue from 'vue'
import Router from 'vue-router'


// import Login from '../components/login.vue'
const Login = () => import(/* webpackChunkName: "login_home_welcome" */ '../components/login.vue')
// import Home from '../components/home.vue'
const Home = () => import(/* webpackChunkName: "login_home_welcome" */ '../components/home.vue')
// import Welcome from '../components/welcome.vue'
const Welcome = () => import(/* webpackChunkName: "login_home_welcome" */ '../components/welcome.vue')

// import Users from '../components/user/users.vue'
const Users = () => import(/* webpackChunkName: "users_rights_roles" */ '../components/user/users.vue')
// import Rights from '../components/power/rights.vue'
const Rights = () => import(/* webpackChunkName: "users_rights_roles" */ '../components/power/rights.vue')
// import Roles from '../components/power/roles.vue'
const Roles = () => import(/* webpackChunkName: "users_rights_roles" */ '../components/power/roles.vue')

// import Cate from '../components/goods/cate.vue'
const Cate = () => import(/* webpackChunkName: "cate_params" */ '../components/goods/cate.vue')
// import Params from '../components/goods/params.vue'
const Params = () => import(/* webpackChunkName: "cate_params" */ '../components/goods/params.vue')

// import List from '../components/goods/list.vue'
const List = () => import(/* webpackChunkName: "list_add" */ '../components/goods/list.vue')
// import Add from '../components/goods/add.vue'
const Add = () => import(/* webpackChunkName: "list_add" */ '../components/goods/add.vue')

// import Order from '../components/order/order.vue'
const Order = () => import(/* webpackChunkName: "list_add" */ '../components/order/order.vue')
// import Report from '../components/report/report.vue'
const Report = () => import(/* webpackChunkName: "list_add" */ '../components/report/report.vue')

Vue.use(Router)

// 解决ElementUI导航栏中的vue-router在3.0版本以上重复点菜单报错问题
const originalPush = Router.prototype.push
Router.prototype.push = function push(location) {
  return originalPush.call(this, location).catch(err => err)
}


const router = new Router({
  routes: [
    {path: '/',redirect: 'login'},
    {path: '/login', component: Login},
    {path: '/home', component: Home,redirect:'/welcome',children:[
        {path:'/welcome',component:Welcome},
        {path:'/users',component: Users},
        {path:'/rights',component:Rights},
        {path:'/roles',component:Roles},
        {path:'/categories',component:Cate},
        {path:'/params',component:Params},
        {path:'/goods',component:List},
        {path:'/goods/add',component:Add},
        {path:'/orders',component:Order},
        {path:'/reports',component:Report}
      ]}
    ]
})


//挂载路由守卫
router.beforeEach((to,from,next)=>{
  //to 将要访问的路径
  //from 代表从那个路径跳转而来
  //next ，一个函数，表示放行  next()  或者 next('/login')强制跳转
  if(to.path==='/login') return next()
  //若果不是访问登录页，需要判断token
  const tokenStr=window.sessionStorage.getItem('token');
  if(!tokenStr) return next('/login')
  next()
})

export default router

